接下來正式進入到這次的專案範例,在實際演練專案的同時也會順便講解過程中會用到的 Laravel 觀念( 會儘量把 Laravel 的常用概念囊括進去 ),然而這個範例是針對 API 開發的部份,因此前端的 View 部份會略過。
首先先來簡單介紹專案大致的藍圖,這次要做的是具有會員系統的留言板,除了留言的 CRUD 外,還有使用者登入驗證的部份( 分成一般使用者、管理員,以及自己 ),因為實際情況下,並不是每個使用者都具備對留言的所有權限,如:別人沒有辦法刪除自己的貼文,或者只有管理者才可以對任何貼文採取所有動作等。除了使用者與留言之外,我們也會為留言添加種類,每個貼文所對應的種類不只有一個,而每個種類對應到的貼文也不只一則。
而我們預計的規劃藍圖大致用以下的示意圖表示
資料庫關聯性
API 路由
專案的規劃到此結束,接下來先進行實作前的準備,在此先開啟一個新的 Laravel 專案。
$ laravel new messageboard
在 Laravel 專案裡,許多的環境設定都會在這個檔案,而且多半是屬於比較敏感的資料,例如 : 資料庫的帳號密碼、APP_KEY、API 密鑰等,因此這個檔案會列在 .gitignore 中,當上傳整個專案到 github 的時候,這些敏感的資訊就不會被看到。若要 clone 別人的 laravel 專案到自己的本機時,其中有一個 .env.example 檔案可以作為模板並且套用自己的設定,想要了解完整的步驟可以參考這個網站。
回歸正題,開啟專案之後在 .env 檔案裡頭調整資料庫的設定 ( 此處針對 MySQL 的設定 )
預設的情形如下:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
更改後的情形:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= [YOUR_DB_NAME]
DB_USERNAME=root
DB_PASSWORD= '[YOUR_PASSWORD]'
<p.s.> 當 server 開啟時,若中途有改變 .env 檔的設定,則必須要重啟一次 server 之後,改變的設定才會被寫入。
專案設定完成,接著將會開發 user 的 API,敬待下回分解。
參考資料 :